import { Space, Table, Tag } from "antd";
import type { TableProps } from "antd";
import { useEffect } from "react";
// import { userApi } from "../../../../api";
import { useTableStore } from "../../../../stores";

interface DataType {
  key: string;
  name: string;
  age: number;
  address: string;
  tags: string[];
}

const columns: TableProps<DataType>["columns"] = [
  {
    title: "Name",
    dataIndex: "name",
    key: "name",
    render: (text) => <a>{text}</a>,
  },
  {
    title: "Age",
    dataIndex: "age",
    key: "age",
  },
  {
    title: "Address",
    dataIndex: "address",
    key: "address",
  },
  {
    title: "Age",
    dataIndex: "age",
    key: "age",
  },
  {
    title: "Address",
    dataIndex: "address",
    key: "address",
  },
  {
    title: "test",
    dataIndex: "age",
    key: "age",
  },
  {
    title: "Address",
    dataIndex: "address",
    key: "address",
  },
  {
    title: "Tags",
    key: "tags",
    dataIndex: "tags",
    render: (_, { tags }) => (
      <>
        {tags.map((tag) => {
          let color = tag.length > 5 ? "geekblue" : "green";
          if (tag === "loser") {
            color = "volcano";
          }
          return (
            <Tag color={color} key={tag}>
              {tag.toUpperCase()}
            </Tag>
          );
        })}
      </>
    ),
  },
  {
    title: "Action",
    key: "action",
    render: (_, record) => (
      <Space size="middle">
        <a>Invite {record.name}</a>
        <a>Delete</a>
      </Space>
    ),
  },
];

// const data: DataType[] = [
//   {
//     key: "1",
//     name: "John Brown",
//     age: 32,
//     address: "New York No. 1 Lake Park",
//     tags: ["nice", "developer"],
//   },
//   {
//     key: "2",
//     name: "Jim Green",
//     age: 42,
//     address: "London No. 1 Lake Park",
//     tags: ["loser"],
//   },
//   {
//     key: "3",
//     name: "Joe Black",
//     age: 32,
//     address: "Sydney No. 1 Lake Park",
//     tags: ["cool", "teacher"],
//   },
// ];
// async function fetchData() {
//   // You can await here
//   const res = await userApi.getNewList({
//     page: 1,
//     page_size: 20,
//     start_t: 1743387861,
//     end_t: 1743647061,
//     channel: "",
//     network: "",
//     country: "",
//     admin_user_id: 8,
//     sig: "3da8be048bd72145fd96fb0920643f53",
//   });
//   console.log(res, "res");
// }

const TableNew: React.FC = () => {
  const { data, loading, fetchData } = useTableStore();
  useEffect(() => {
    fetchData();
  }, []);

  return (
    <>
      <Table<DataType>
        columns={columns}
        scroll={{ x: "max-content" }}
        dataSource={data}
        size="small"
        rowKey="key"
        loading={loading}
        pagination={{
          showSizeChanger: true,
          onChange: (page, pageSize) => {
            useTableStore.getState().setParams({ page, page_size: pageSize });
          },
        }}
      />
    </>
  );
};

export default TableNew;
